iT邦幫忙

2024 iThome 鐵人賽

DAY 28
0


📌 本主題系列工作流所生成的文章,請參考另一個主題系列:[轉生到鬼島的反派,為了生存必須在30天內學會30種 AI 工具!]
📌 本主題內容以個人經驗為主探索 AIGC 協作工作流,建議讀者搭配個人情境參考適用程度
📌 文中使用『引用格式』代表輸入的 Prompt

💡
這是輸入的 Prompt

⚠️ 天才與瘋子只有一線之隔,使用 AIGC 請注意幻覺的副作用,建議搭配應用領域的相關 domain 服用。
⚠️ 由於 AIGC 突飛猛進,本系列介紹的工具版本可能快速的變更而有所差異

無代碼:使用 Langflow 快速構建基於 RAG 的 AI Agent

想像一下,您可以在幾分鐘內,無需編寫任何代碼,就構建一個利用檢索增強生成(RAG)技術的人工智能應用程式。本文將向您展示如何使用 LangflowAstraDBOpenAI,建立一個能夠回答特定 PDF 文件內容問題的聊天機器人。

目錄

  1. 什麼是 Langflow?
  2. 準備工作
  3. 安裝 Langflow
  4. 設置 AstraDB 向量資料庫
  5. 獲取 OpenAI API 密鑰
  6. 構建您的 Langflow 流程
  7. 測試您的聊天機器人
  8. 結論

什麼是 Langflow?

Langflow 是一個視覺化的開發工具,讓您可以通過拖放組件來構建複雜的人工智能應用程式,無需編碼。它支持多種預建組件,並能與不同的語言模型(LLM)和資料庫集成。

準備工作

在開始之前,請確保您已具備以下條件:

  • 安裝了 Python 3.10 或更高版本
  • 一個用於存放常見問題的 PDF 文件(例如餐廳的 Q&A)
  • 註冊了 AstraDB(DataStax 提供的免費向量資料庫)
  • 獲取了 OpenAI API 密鑰

安裝 Langflow

  1. 打開終端或命令提示符

  2. 安裝 Langflow

    如果您使用的是 MacLinux,請輸入:

    pip3 install langflow --pre --force-reinstall
    

    如果您使用的是 Windows,請輸入:

    pip install langflow --pre --force-reinstall
    

    (screenshot)

  3. 等待安裝完成。這可能需要幾分鐘,因為需要下載多個套件。

設置 AstraDB 向量資料庫

  1. 訪問 DataStax AstraDB 並註冊一個免費帳戶

    (screenshot)

  2. 登錄後,點擊 "Create Database"

    (screenshot)

  3. 選擇 "Serverless Vector Database"

  4. 為您的資料庫命名(例如 langflow-tutorial),選擇雲提供商和地區,然後點擊 "Create Database"

    (screenshot)

  5. 等待資料庫創建完成。完成後,記下您的 TokenEndpoint,稍後將在 Langflow 中使用。

    (screenshot)

獲取 OpenAI API 密鑰

  1. 訪問 OpenAI 開發者平台

  2. 登錄或註冊帳戶

  3. 點擊 "Create new secret key",生成新的 API 密鑰。

    (screenshot)

  4. 複製並保存您的 API 密鑰

    注意:您可能需要為您的帳戶充值一些金額才能使用 API。

構建您的 Langflow 流程

  1. 啟動 Langflow

    在終端中輸入:

    langflow run
    

    Langflow 將在您的瀏覽器中自動打開。

    (screenshot)

  2. 創建新項目

    • 點擊 "New Project"
    • 選擇 "Blank Flow"

    (screenshot)

  3. 添加輸入組件

    • 從左側菜單的 "Inputs" 中拖入 "Text Input""Chat Input"

    (screenshot)

  4. 設置用戶名輸入

    • 點擊 "Text Input",將其重命名為 "Name"
    • "Name" 的輸出連接到 "Chat Input""Sender Name"

    (screenshot)

  5. 添加 Prompt 組件

    • "Prompts" 中拖入 "Prompt" 組件。

    • 編輯 Prompt 的模板為:

      請根據以下內容回答用戶的問題:
      內容:{context}
      問題:{question}
      聊天記錄:{history}
      
    • 確保模板中包含 {context}{question}{history}

    (screenshot)

  6. 連接組件

    • "Chat Input" 的輸出連接到 "Prompt""question"
    • 添加 "Chat Memory" 組件,將 "Name" 的輸出連接到 "Chat Memory""Session ID"
    • "Chat Memory" 的輸出連接到 "Prompt""history"

    (screenshot)

  7. 添加 LLM 模型

    • "Models" 中拖入 "OpenAI" 組件。
    • 輸入您的 OpenAI API 密鑰。
    • "Prompt" 的輸出連接到 "OpenAI" 的輸入。

    (screenshot)

  8. 添加輸出組件

    • "Outputs" 中拖入 "Chat Output" 組件。
    • "OpenAI" 的輸出連接到 "Chat Output""Message"
    • "Chat Output""Sender Name" 設置為 "AI"

    (screenshot)

  9. 初步測試

    • 點擊右上角的 "Run" 按鈕。
    • "Name" 欄位輸入您的名字,例如 "Tim"
    • 在聊天框中輸入一個問題,例如 "你好嗎?"
    • 應該會看到 AI 的回應。

    (screenshot)

測試您的聊天機器人

  1. 添加 PDF 文件

    • "File" 中拖入 "File Loader" 組件。
    • 選擇您的 PDF 文件(例如餐廳常見問題)。

    (screenshot)

  2. 分割文本

    • "Text" 中拖入 "Split Text" 組件。
    • "File Loader" 的輸出連接到 "Split Text" 的輸入。

    (screenshot)

  3. 設置向量存儲

    • "Vector Stores" 中拖入 "AstraDB" 組件。
    • 輸入您的 EndpointTokenCollection Name(例如 "pdf")。
    • "Split Text" 的輸出連接到 "AstraDB""Input"
    • "Embeddings" 中拖入 "OpenAI Embeddings" 組件,設置您的 OpenAI API 密鑰。
    • "OpenAI Embeddings" 的輸出連接到 "AstraDB""Embeddings"

    (screenshot)

  4. 添加向量搜索

    • "Vector Stores" 中拖入 "AstraDB Search" 組件。
    • 設置相同的 EndpointTokenCollection Name
    • "Chat Input" 的輸出連接到 "AstraDB Search""Input Value"
    • "OpenAI Embeddings" 的輸出連接到 "AstraDB Search""Embeddings"
    • "AstraDB Search" 的輸出連接到 "Prompt""context"

    (screenshot)

  5. 最終測試

    • 點擊 "Run"
    • "Name" 中輸入您的名字。
    • 問與 PDF 內容相關的問題,例如 "餐廳的營業時間是什麼?"
    • 您應該會得到基於 PDF 的精確回答。

    (screenshot)

提示:如果第一次沒有得到正確的回答,請再試一次,因為向量資料庫可能需要一些時間來初始化。

結論

恭喜!您已成功構建一個基於 RAG 技術的聊天機器人,能夠根據特定文檔回答用戶問題。透過 Langflow 的直觀介面和強大的組件,您無需編碼即可實現複雜的功能。現在,您可以嘗試添加更多功能,或將其應用到不同的場景中。


上一篇
[Langflow Flowise Dify] AIGC 世代的 Agent Workflow Automation
下一篇
[Level 15] 使用 Flowise 建立強大的 AI Agent
系列文
我無限升級,30天解鎖獨自升級金手指!你老闆不能知道的 AIGC 效率激增工作流29
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言